/*
 * To change this template, choose Tools | Templates and open the template in
 * the editor.
 */
package Enchere;

import Personne.Personne;
import Tableau.Tableau;
import com.sun.faces.util.CollectionsUtils;
import java.util.HashMap;
import java.util.Iterator;
import javax.ejb.Remove;
import javax.ejb.Stateful;

/**
 *
 * @author Morgan
 */
@Stateful
public class Enchere implements EnchereLocal {
    private Tableau tableau;
    private HashMap<Personne, Integer> mapEnchere;

    public Enchere()
    {
        mapEnchere = new CollectionsUtils.ConstMap<Personne, Integer>();
    }
    @Override
    public Tableau ConsulterTableau() {
        return tableau;
    }

    @Override
    public void definirTableau(Tableau p_tableau) {
        tableau = p_tableau;
    }

    @Override
    public void ajouterPersonne(Personne p_personne, int p_prix) {
        mapEnchere.put(p_personne, p_prix);
    }

    @Override
    public Personne meilleureEnchere() {
        Personne personne = null;
        int minimum = 0;
        Iterator<Personne> itr = mapEnchere.keySet().iterator();
        
        if(itr.hasNext())
        {
            personne = itr.next();
            minimum = mapEnchere.get(personne);
        }
        
        while(itr.hasNext())
        {
            Personne personnetmp = itr.next();

            if(mapEnchere.get(personne) < minimum)
            {
                minimum = mapEnchere.get(personne);
                personne = personnetmp;
            }
        }
        
        return personne;
    }

    @Override
    public void valider() {
        tableau.setIsVendu(true);;
    }

    @Override
    public HashMap<Personne, Integer> listePersonne() {
        return mapEnchere;
    }

    @Override
    @Remove
    public void disconnect() {
        
    }
    
}
